<?php
/**
 * Created by PhpStorm.
 * User: dell
 * Date: 2018/7/27
 * Time: 21:25
 */

namespace wechat\core;

use wechat\Wx;


/**
 * 回复用户类
 * Class Message
 */
//4.2进行父类的继承，因为父类中有接口方法，有获取微信服务器传来信息分方法
class Message extends Wx
{

//    4.3创建text回复；
    /**
     * 被动回复文本text方法
     * @param $content
     */
    public function text($content)
    {

        $xml = '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>';
//        4.3.1在此我们见学习sprintf()方法，此方法介绍：函数会把格式化的字符串写入变量中；
//          第一个参数是要被替换的字符串
//          从第二个参数开始,依次替换被替换的字符串中的每一个%s占位符
//      例如：
        $xml = sprintf($xml,$this->message->FromUserName,$this->message->ToUserName,time(),$content);
        //将xml数据输出
        echo $xml;
    }

    /**
     * 5.1创建图片回复信息
     * 参考微信手册
     * $media数据来自Entry中的的图片测试；
     */
    public function image($media){
        $xml = '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[image]]></MsgType><Image><MediaId><![CDATA[%s]]></MediaId></Image></xml>';

        $xml = sprintf($xml,$this->message->FromUserName,$this->message->ToUserName,time(),$media);
//        现在回到入口类中测试图片回复；
        echo $xml;
    }

    /**
     * 关注方法
     * 查看手册 接收事件推送
     */
    public function isSubscribe(){
        return $this->message->MsgType == 'event' && $this->message->Event == 'subscribe';
    }

    /**
     * 取消关注方法
     * 微信手册 接收事件推送
     */
    public function Unsubscribe(){
        return $this->message->MsgType == 'event' && $this->message->Event == 'unsubscribe';
    }

}